package com.gaussian.property.module.biz.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gaussian.property.module.biz.entity.ProjectReportFile;
import com.gaussian.property.module.biz.vo.projectreport.PageQueryProjectReportRequest;
import com.gaussian.property.module.biz.vo.projectreport.ProjectReportFileVO;
import com.songqi.common.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 项目报告 Mapper 接口
 * </p>
 *
 * @author songqi(13776346982)
 * @since 2024-08-11
 */

@Mapper
public interface ProjectReportFileMapper extends BaseMapperX<ProjectReportFile> {

    /**
     * 查询项目报告文件
     * @param projectId
     * @param month
     * @param reportType
     * @param fileName
     * @return
     */
    ProjectReportFileVO getProjectReportFile(@Param("projectId") String projectId,
                                             @Param("month") String month,
                                             @Param("reportType") String reportType,
                                             @Param("fileName") String fileName);

    /**
     * 多条件分页查询项目报告
     * @param iPage
     * @param queryRequest
     * @return
     */
    IPage<ProjectReportFileVO> pageQueryProjectReportJoinDownloadRecord(IPage<ProjectReportFileVO> iPage,
                                                                        @Param("param") PageQueryProjectReportRequest queryRequest,
                                                                        @Param("appUserId") String appUserId);



    IPage<ProjectReportFileVO> pageQueryProjectReportDownloadRecord(IPage<ProjectReportFileVO> iPage,
                                                                    @Param("param") PageQueryProjectReportRequest queryRequest,
                                                                    @Param("appUserId") String appUserId);

    /**
     * 多条件分页查询项目报告
     * @param iPage
     * @param queryRequest
     * @return
     */
    IPage<ProjectReportFileVO> pageQueryProjectReport(IPage<ProjectReportFileVO> iPage,
                                                                        @Param("param") PageQueryProjectReportRequest queryRequest);


}
